Inventory management system

ABSTRACT

An inventory management system includes one or more radio frequency identification (RFID) readers each configured to detect RFID labels attached to inventory items within a certain radius of the RFID reader. The one or more RFID readers are configured to automatically determine a directional movement of RFID labels and attached inventory items. A first computer server is configured to communicate, via a network connection, with one or more client devices, and also configured to receive data gathered by the one or more RFID readers. The first computer server is configured to maintain a real-time inventory status of the inventory items. The real-time inventory status includes a location of the one or more RFID labels, and further includes a current usage state of the attached inventory items. The first computer server is configured to transmit the real-time inventory status to a display of the client device.

FIELD OF THE INVENTION

This invention generally relates to a system for inventory management.

BACKGROUND OF THE INVENTION

Inventory management is an important function in many largeorganizations both public and private. Often, the ability tosuccessfully manage inventory is critical to the efficient operation ofthe organization. As such, many aspects of management theory deal withvarious systems and methods for managing and controlling inventory.

Embodiments of the present invention represent an advancement over thestate of the art with respect to inventory management systems. These andother advantages of the invention, as well as additional inventivefeatures, will be apparent from the description of the inventionprovided herein.

BRIEF SUMMARY OF THE INVENTION

In one aspect, embodiments of the invention provide an inventorymanagement system that includes one or more radio frequencyidentification (RFID) readers with each configured to detect RFID labelsattached to inventory items within a certain radius of the RFID reader.The one or more RFID readers are configured to automatically determine adirectional movement of RFID labels and attached inventory items. Afirst computer server is configured to communicate, via a networkconnection, with one or more client devices, and also configured toreceive data gathered by the one or more RFID readers. The firstcomputer server is configured to maintain a real-time inventory statusof the inventory items. The real-time inventory status includes alocation of the one or more RFID labels, and further includes a currentusage state of the attached inventory items. The first computer serveris configured to transmit the real-time inventory status to a display ofthe client device. In some embodiments, the inventory management systemincludes an RFID label printer configured to print RFID labels for theinventory items.

In a particular embodiment, the client device includes a second computerserver configured as a slave to the first computer server, the secondcomputer server connected to the one or more RFID readers. The clientdevice may also include a handheld RFID scanner. In other embodiments,the client device includes a thick-client-managed RFID scanner. Inparticular embodiments, the thick client is one of a desktop computer, alaptop computer, and a tablet computer. The client devices, in somecases, include an application to facilitate the display the real-timeinventory status. In some embodiments, the application facilitates thedisplay of a photograph of the inventory item associated with aparticular RFID label, along with the location of the RFID label and thecurrent usage state of the inventory item. In a further embodiment, theapplication updates the display of the real-time inventory status inreal-time based on data gathered by the RFID reader.

In certain embodiments, each of the one or more RFID readers is locatedat a portal or doorway. In some instances, the portal is a dual zoneportal having RFID readers located on each side of the portal, such thatthe RFID readers can determine the direction an RFID label moves throughthe portal. In alternate embodiments, the portal is a single zone portalhaving RFID readers located on one side of the portal.

The first computer server may be programmed to implement a dwell timesuch that, after a change in the current usage state of the inventoryitem due to detection of the inventory item's RFID label by a particularRFID reader, the current usage state cannot be changed again, during thedwell time, based on a subsequent detection of the inventory item's RFIDlabel by the particular RFID reader.

In certain embodiments, the first computer server is configured todetect an RFID label carried by an individual in order to identify andrecord a name of the individual transporting the inventory items.Further, the first computer server may be configured to determine thecurrent usage state of inventory items by the directional movement ofthe RFID labels attached to the inventory items. In some embodiments,the first computer server is configured to track a shelf life for eachinventory item.

In particular embodiments of the invention, prior to shipment of theinventory items, RFID labels on each inventory item are linked to itemslisted on the packing slip. In this embodiment, the first computerserver is configured to automatically determine whether the RFID labelson each inventory item detected by the one or more RFID readers matchesthe listing of inventory items on the packing slip.

In a particular embodiment, each location includes a unique RFID labelsuch that a physical count of the inventory items in a location can beperformed by scanning the RFID label for the location and for eachinventory item in that location. The first computer server may beconfigured to detect, in real time, a discrepancy between the physicalcount and a projected inventory count. In some embodiments, the firstcomputer server loads, onto a handheld RFID scanner for storage thereon,the projected count for the inventory item at the location forcomparison to the physical count determined by the handheld RFIDscanner.

In certain embodiments, the first computer server is remotely-locatedfrom the one or more client devices. Additionally, the first computerserver may be configured to control one or more remotely-located RFIDreaders. In such an embodiment, the client device may be a thin clientused at the remote location to access the real-time inventory status.The thin client may be one of a tablet computer, touch screen device,notebook computer, and a smart phone.

In some embodiments, the first computer server is configured to maintaina real-time inventory status of the inventory items from one or moreremote sites. The first computer server may be configured to include anapplication which automatically generates replenishment orders forinventory items when an inventory level for the inventory item dropsbelow a threshold level.

Other aspects, objectives and advantages of the invention will becomemore apparent from the following detailed description when taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings incorporated in and forming a part of thespecification illustrate several aspects of the present invention and,together with the description, serve to explain the principles of theinvention. In the drawings:

FIGS. 1A and 1B are schematic block diagrams illustrating an inventorymanagement system, according to an embodiment of the invention;

FIG. 2 is a perspective view of an RFID portal, in accordance with anembodiment of the invention;

FIG. 3 is a schematic diagram showing an exemplary screen shot for aportal event viewer, according to an embodiment of the invention; and

FIG. 4 is a schematic block diagram showing a relationship betweenvarious components of the inventory management system, according to anembodiment of the invention.

While the invention will be described in connection with certainpreferred embodiments, there is no intent to limit it to thoseembodiments. On the contrary, the intent is to cover all alternatives,modifications and equivalents as included within the spirit and scope ofthe invention as defined by the appended claims.

DETAILED DESCRIPTION OF THE INVENTION

FIGS. 1A and 1B are schematic block diagrams illustrating a server-basedinventory management system 100, constructed in accordance with anembodiment of the invention. The inventory management system 100includes a computer server 102 having a database for the storage ofinventory information, which typically includes a location of theinventory item and the current usage state of the inventory item.Information on inventory type, movement, and levels is acquiredsubstantially via the scanning of RFID labels by strategically locatedRFID readers 108.

The computer server 102 is configured to communicate, via wired orwireless means, with a variety of client devices. The client devicesinclude, but are not limited to, desktop computers, laptop computers,tablet computers, and handheld RFID scanners. FIGS. 1A and 1B illustratethree possible user configurations. The first user configuration 104 isa wired connection to a thick client 106, which could be a desktopcomputer or a laptop computer. As with any of the user configurationsdescribed herein, the user may be remotely located from the computerserver 102. The thick client 106 is configured to provide a user with ahigh degree of functionality, with respect to management and control ofRFID readers 108, along with access and manipulation of inventory data,independent of the computer server 102. Data from the thick client 106may be deployed to one or more thin clients 112, such as tabletcomputers, touch screen devices, notebook computers, or smart phones,etc., to allow multiple users access to real-time inventory data whichmay be stored on the computer server 102, thick client 106, or both.

The second user configuration 110 is one in which the computer server102 manages and controls the RFID readers 108 via a wired or wirelessconnection. At the user site, thin clients 112, such as theaforementioned tablet computers, touch screen devices, notebookcomputers, or smart phones, may be used to access to real-time inventorydata which may be stored on the computer server 102.

In a third user configuration 116, the computer server 102 communicates,via a wired connection, with a client server 120 remotely located fromthe computer server 102. The client server 120 is configured as a slaveserver to the computer server 102, and is also configured to manage andcontrol the RFID readers 108 at the user site. The client server 120locally provides all, or nearly all, of the functions provided by thecomputer server 102. The client server 120 is also configured forwireless communication with thin clients 112, such as the aforementionedtablet computers, touch screen devices, notebook computers, or smartphones that allow for access to real-time inventory data stored on theclient server 120.

FIG. 2 is a perspective view of an RFID portal that incorporates one ormore RFID readers 118, in accordance with an embodiment of theinvention. An RFID portal includes one or more RFID antennas 119(managed by an RFID reader 118) installed at a given chokepoint such asa doorway, hallway or anywhere where tagged items (with RFID labels)pass through. An exemplary portal is shown in FIG. 2 as a verticallyopening bay door such as might be found on the loading dock of awarehouse or factory building. RFID readers 118 are installed on eachside, and along the top, of the bay door. However, RFID portals can beinstalled in a variety of different locations with a variety ofdifferent RFID reader 118 arrangements. The more RF signal emitted atthe portal (e.g., more antennas 119 and higher power), the betteroverall readability at the portal. Typically, some care must be taken toensure that the RF signal is controlled and does not bleed over intoother inventory areas.

When an RFID label, attached to an inventory item and known to thecomputer server 102, passes through a given RFID portal and isrecognized by the RFID reader 118, the current inventory location of theinventory item is assessed, and based on the status of the inventoryitem in the computer server 102, the inventory location is updated. Whenthe inventory item is seen again by the RFID reader 118 that same logicis applied. These rules are configured in the computer server's 102inventory movement rules and enables users to maintain a perpetualinventory state of tagged items as they move throughout the enterprise.It should be noted that the term “inventory item” can be applied to awide variety of goods. In this context, any good that can be fitted withan RFID label, which includes any number of manufactured items, softgoods, but also includes chemicals, various liquids in containers, etc.

The computer server 102 may be configured to designate the inventorylocation of a tagged item as “in-transit” during shipment from onelocation to another. When the tagged inventory item is received at auser site, a warehouse for example, the inventory movement rules in thecomputer server 102 may change the inventory location from “in-transit”to “storage”. When the RFID label is read again by an RFID reader 118,the current inventory location may be changed from “storage” to“consumed” if the RFID reader 118 indicates that the inventory item wasmoved from a storage area to a production area. In certain embodiment,it is desirable to have a “dwell time” or period in-between read eventsso that a given RFID label has time to move away from the portal (e.g.,to be put-away on shelf, etc.) before it is considered for anotherinventory move. The dwell time should be long enough to allow the RFIDlabel to move away from the portal read zone, but not too long suchthat, if it is brought back into the range of the RFID reader 118relatively quickly, it will be not be ignored. For example, if thetagged inventory item is inadvertently seen after the dwell time (e.g.,after put-away operation), it could erroneously be considered as leavingthe area and the inventory location changed to an incorrect location.

RFID readers 118 may be arranged at a portal to provide directionalawareness. Directional awareness is when there are two read zones (i.e.,dual zone), and thus two or more RFID readers 118, on each side of achoke point (e.g., a doorway threshold) and thus the computer server 102can deduct when a RFID label is coming or going (not just that it wasseen). This logic basically looks at which RFID reader 118 saw the RFIDlabel last (e.g., 1-2 or 2-1), and, based on that reading, executes theappropriate inventory movement rules. In this case, a dwell period isnot required as with a single-zone portal (described above) and taggedinventory items can come and go at any point (e.g. back to back, reversedirection, etc.).

The end result of implementing the inventory movement rules, asexplained above, is that the computer server 102 maintains a real-timeperpetual inventory of tagged inventory items. This can be seen in thecomputer server 102 inventory inquiry that shows a concise picture ofinventory state and all the supporting event transactions. The computerserver 102 provides, to the display of a local or remotely locatedclient device, real-time data on the inventory status, includinglocation, current usage state, shelf life, storage time, etc. Thecurrent usage state may include information on the process in which theinventory item is being used. The location information can be arrangedto have an enterprise view so that a given user can be selected, andbelow that information level there can be a listing of different usagestates (e.g. staging, storage, consumed, etc.).

In particular embodiments, the server-based inventory management system100 allows for the transport of tagged items through the RFID portalsuch that users are able to visualize/verify what has actually beenscanned by the RFID reader 118. The computer server 102 provides aclient application called a portal event viewer (PEV) that is configuredwith the computer server 102 on a subscription basis to facilitatedisplay of real-time inventory status information. RFID labels beingread at a given portal can be pushed to one or more PEV clients. The PEVwill then display key information like the item image and keydescriptors so the inventory item can be easily identified as being“read”.

FIG. 3 is a schematic diagram showing an exemplary screen shot 130 for aportal event viewer, according to an embodiment of the invention. ThePEV application facilitates the display of a photograph of the inventoryitem associated with a particular RFID label, along with the location ofthe RFID label and the current usage state of the inventory item. In afurther embodiment, the application updates the display of the real-timeinventory status in real-time based on data gathered by the RFID reader.

Given the factors that can influence RFID label readability, visualizingthe RFID labels may have a lesser or greater importance to the user. TheRFID label could be missed during passage, or an additional RFID labelnot physically transported could be inadvertently seen (e.g., a rogueread event). If an inventory item is missed, it can simply be moved backinto the RFID portal area until the RFID label is recognized by the RFIDreader 118, and the event is pushed to the PEV.

There are two modes of PEV operation 1) attended and 2) unattended asexplained below:

Unattended—as the tagged inventory items are seen at the RFID portal,the computer server's 102 movement rules are processed, and, when theyappear on the PEV, it is for confirmation purposes only as the inventorytransaction has already taken place. In this embodiment, dropping anRFID label from the PEV display will not nullify or reverse thetransaction.Attended—as the tagged inventory items are seen at the RFID portal, theRFID label is resolved to the item and is displayed on the PEV. Noinventory movement rules have been implemented by the computer server102 at this point. The user can verify that all of the RFID labels havebeen read (including dropping any unwanted RFID labels) and then acceptthe transaction which will then execute the inventory transaction andappropriate inventory movement rules.

In particular embodiments of the invention, prior to shipment of theinventory items, a packing slip 122 (see FIG. 1A) with a packing slipRFID label is linked to the RFID labels on each inventory item listed onthe packing slip 122. In this embodiment, the computer server 102 isconfigured to automatically determine whether the RFID labels on eachinventory item, detected by the RFID readers 118 at the receivinglocation, matches the listing of inventory items on the packing slip122.

The user would validate the goods/inventory items received against thepacking slip. Even if the goods actually received do not match those onthe packing slip, the user would transport the tagged inventory itemsphysically received through the RFID portal into storage. The computerserver 102 would record the transaction as the inventory items arephysically moved into storage (normal the computer server 102 operation)and could happen over several passes relative to the amount of materialbeing received to inventory.

The computer server 102 is configured to perform a consumptiontransaction in a similarly straightforward manner. As tagged inventoryitems are moved out of the storage area and scanned at the RFID portal,the inventory items would then be assigned a usage state of “consumed”.The computer server 102 can also execute a return transaction in afairly straightforward manner. As tagged inventory items are returned tothe storage area and scanned at the RFID portal, the inventory itemswould then be assigned usage state of “storage” if their previous usagestate was “consumed”. The inventory location would be appropriatelyupdated as well.

In a particular embodiment, each location within a user facilityincludes a unique RFID label, such that a physical count of theinventory items in a location can be performed by scanning the RFIDlabel for the location and for each inventory item in that location. Thecomputer server 102 may be configured to detect, in real time, adiscrepancy between the physical count and a projected inventory count.In some embodiments, the computer server 102 loads, onto a handheld RFIDscanner 124 (see FIG. 1A) for storage thereon, the projected count forthe inventory item at the location for comparison to the physical countdetermined by the handheld RFID scanner 124.

In at least one embodiment, the computer server 102 includes a physicalinventory module that works offline so that no Wi-Fi or cellular datacommunications are required during the actual counting operation. Thecomputer server 102 can be directed to any user location for thephysical count. The inventory data will then be synchronized onto thehandheld RFID scanner 124 and the inventory data can be transmitted tothe user location for a physical count. RFID location tags can bemounted in each inventory storage area, and each location tag representsa unique location for inventory storage. These locations are stored inthe computer server 102 and associated with inventory items at thatlocation (e.g., “User 100/Room 1”) during physical counts, for example.In certain embodiments, when the RFID location tag is scanned by theRFID reader 118, the handheld RFID scanner 124 will display how manyinventoried items are expected in that program location (the perpetualcount). The handheld RFID scanner 124 will then proceed to scan all thetagged items in that area while at same time comparing the projectedamount to the physical count.

The computer server 102 may also be configured to detect an RFID labelcarried by an individual in order to identify and record a name of theindividual transporting the inventory items. Thus, a record is createdshowing the name, date, time, and possibly even a photograph of theindividual transporting the inventory items through a given RFID portal.As can be seen in FIG. 2, this real-time inventory information may bemade available via the portal event viewer to users accessing thecomputer server 102 using thin clients 112.

Additionally, a fourth user configuration involves the use of one ormore handheld RFID scanners 124 wirelessly connected to the computerserver 102. When the computer server 102 is remotely located, the one ormore handheld RFID scanners 124 may be managed and controlled by a localthick client 106, local slave server 120, or may be controlled by thecomputer server 102. Handheld RFID scanners 124 are convenient forphysical counts, and may be used in the place of fixed portal-based RFIDreaders 118.

FIG. 4 is a schematic block diagram showing a relationship betweenvarious components of the inventory management system, according to anembodiment of the invention. In a particular embodiment, the computerserver 102 is configured to include a middleware application 140 whichautomatically generates replenishment orders for inventory items when aninventory level for the inventory item drops below a threshold level.The middleware application 140 may reside on the computer server 102 oron a separate networked computer 142 (see FIG. 1B).

The middleware application 140 is configured to access the real-timeinventory data stored on the computer server 102. The middlewareapplication 140 is also configured to access enterprise systems 144 (seeFIG. 1B) having applications, such as ERP software, capable of placingelectronic orders for material acquisition. In some embodiments, userswith thin clients 112 or handheld RFID scanners are able to access anduse the middleware application 140.

In an embodiment, the middleware application 140 is coupled to an RFIDlabel printer 148, which can access an RFID tag database 150 to obtainthe data needed for printing the labels. When the RFID labels areprinted, they are typically given a default location (e.g., staging).The labels could remain in that state until received at the userlocation with no outbound RFID tracking whatsoever. Optionally, thecomputer server 102, in convert with an RFID portal, can be configuredto track the time when an order is loaded for shipment, changing itsstate from “staging” to “in-transit”. An inventory record will begenerated for each tagged inventory item, uniquely identified by anidentification number, and associated with its default locationincluding the usage state, expiration date, storage information andorder number.

The computer server 102 may track the expiration date and the shelf lifeaccording to the times for which the inventory item was scanned at theuser's RFID portal. Thus, the computer server 102 can issue alerts forthe user when the shelf life of an inventory item nears (e.g., is withina predetermined number of days of the expiration date) or exceeds itsexpiration date.

All references, including publications, patent applications, and patentscited herein are hereby incorporated by reference to the same extent asif each reference were individually and specifically indicated to beincorporated by reference and were set forth in its entirety herein.

The use of the terms “a” and “an” and “the” and similar referents in thecontext of describing the invention (especially in the context of thefollowing claims) is to be construed to cover both the singular and theplural, unless otherwise indicated herein or clearly contradicted bycontext. The terms “comprising,” “having,” “including,” and “containing”are to be construed as open-ended terms (i.e., meaning “including, butnot limited to,”) unless otherwise noted. Recitation of ranges of valuesherein are merely intended to serve as a shorthand method of referringindividually to each separate value falling within the range, unlessotherwise indicated herein, and each separate value is incorporated intothe specification as if it were individually recited herein. All methodsdescribed herein can be performed in any suitable order unless otherwiseindicated herein or otherwise clearly contradicted by context. The useof any and all examples, or exemplary language (e.g., “such as”)provided herein, is intended merely to better illuminate the inventionand does not pose a limitation on the scope of the invention unlessotherwise claimed. No language in the specification should be construedas indicating any non-claimed element as essential to the practice ofthe invention.

Preferred embodiments of this invention are described herein, includingthe best mode known to the inventors for carrying out the invention.Variations of those preferred embodiments may become apparent to thoseof ordinary skill in the art upon reading the foregoing description. Theinventors expect skilled artisans to employ such variations asappropriate, and the inventors intend for the invention to be practicedotherwise than as specifically described herein. Accordingly, thisinvention includes all modifications and equivalents of the subjectmatter recited in the claims appended hereto as permitted by applicablelaw. Moreover, any combination of the above-described elements in allpossible variations thereof is encompassed by the invention unlessotherwise indicated herein or otherwise clearly contradicted by context.

What is claimed is:
 1. An inventory management system comprising: one ormore radio frequency identification (RFID) readers each configured todetect RFID labels attached to inventory items within a certain radiusof the RFID reader, the one or more RFID readers configured toautomatically determine a directional movement of RFID labels andattached inventory items; a first computer server configured tocommunicate, via a network connection, with one or more client devices,and configured to receive data gathered by the one or more RFID readers;wherein the first computer server is configured to maintain a real-timeinventory status of the inventory items, the real-time inventory statusincluding a location of the one or more RFID labels, and furtherincluding a current usage state of the attached inventory items; andwherein the first computer server is configured to transmit thereal-time inventory status to a display of the client device.
 2. Theinventory management system of claim 1, wherein the client deviceincludes a second computer server configured as a slave to the firstcomputer server, the second computer server connected to the one or moreRFID readers.
 3. The inventory management system of claim 1, wherein theclient device includes a handheld RFID scanner.
 4. The inventorymanagement system of claim 1, wherein the client device includes athick-client-managed RFID scanner.
 5. The inventory management system ofclaim 4, wherein the thick client is one of a desktop computer, and alaptop computer.
 6. The inventory management system of claim 1, whereineach of the one or more RFID readers is located at a portal or doorway.7. The inventory management system of claim 6, wherein the portal is adual zone portal having RFID readers located on each side of the portal,such that the RFID readers can determine the direction an RFID labelmoves through the portal.
 8. The inventory management system of claim 6,wherein the portal is a single zone portal having RFID readers locatedon one side of the portal.
 9. The inventory management system of claim8, wherein the first computer server is programmed to implement a dwelltime such that, after a change in the current usage state of theinventory item due to detection of the inventory item's RFID label by aparticular RFID reader, the current usage state cannot be changed again,during the dwell time, based on a subsequent detection of the inventoryitem's RFID label by the particular RFID reader.
 10. The inventorymanagement system of claim 1, wherein the client devices include anapplication to facilitate the display the real-time inventory status.11. The inventory management system of claim 10, wherein the applicationfacilitates the display of a photograph of the inventory item associatedwith a particular RFID label, along with the location of the RFID labeland the current usage state of the inventory item.
 12. The inventorymanagement system of claim 11, wherein the application updates thedisplay of the real-time inventory status in real-time based on datagathered by the RFID reader.
 13. The inventory management system ofclaim 1, wherein the first computer server is configured to detect anRFID label carried by an individual in order to identify and record aname of the individual transporting the inventory items.
 14. Theinventory management system of claim 1, wherein the first computerserver is configured to determine the current usage state of inventoryitems by the directional movement of the RFID labels attached to theinventory items.
 15. The inventory management system of claim 1, whereineach location includes a unique RFID label such that a physical count ofthe inventory items in a location can be performed by scanning the RFIDlabel for the location and for each inventory item in that location. 16.The inventory management system of claim 15, wherein the first computerserver is configured to detect, in real time, a discrepancy between thephysical count and a projected inventory count.
 17. The inventorymanagement system of claim 15, wherein the first computer server loads,onto a handheld RFID scanner for storage thereon, the projected countfor the inventory item at the location for comparison to the physicalcount determined by the handheld RFID scanner.
 18. The inventorymanagement system of claim 1, wherein the first computer server isremotely-located from the one or more client devices.
 19. The inventorymanagement system of claim 1, wherein the first computer server isconfigured to maintain a real-time inventory status of the inventoryitems from one or more remote sites.
 20. The inventory management systemof claim 1, wherein the first computer server includes an applicationwhich automatically generates replenishment orders for inventory itemswhen an inventory level for the inventory item drops below a thresholdlevel.
 21. The inventory management system of claim 1, furthercomprising an RFID label printer configured to print RFID labels for theinventory items.
 22. The inventory management system of claim 1, whereinthe first computer server is configured to track a shelf life for eachinventory item.
 23. The inventory management system of claim 22, whereinthe first computer server is configured to track an expiration date foreach inventory item, and to alert a user if the shelf life nears orexceeds the expiration date for an inventory item.
 24. The inventorymanagement system of claim 1, wherein RFID labels on each inventory itemare linked to items listed on the packing slip, and wherein the firstcomputer server is configured to automatically determine whether theRFID labels on each inventory item detected by the one or more RFIDreaders matches the listing of inventory items on the packing slip. 25.The inventory management system of claim 1, wherein the first computerserver is configured to control one or more remotely-located RFIDreaders.
 26. The inventory management system of claim 25, wherein theclient device is a thin client used at the remote location to access thereal-time inventory status, the thin client comprising one of a tabletcomputer, touch screen device, notebook computer, and a smart phone.